﻿using DOHS_WM6.Classes;
using System.Windows.Forms;
using System;
using DOHS_WM6.Enumeradores;
using System.Collections.Generic;

namespace DOHS_WM6.Fichas
{
    public partial class formCondicaoDentaria1 : FormDOHS
    {
        #region Propriedades

        private Dictionary<string, TipoCampo> Campos = new Dictionary<string, TipoCampo>();

        #endregion

        #region Construtor
        public formCondicaoDentaria1()
        {
            InitializeComponent();

            Campos.Add("txtCoroa18", TipoCampo.Coroa);
            Campos.Add("txtCoroa17", TipoCampo.Coroa);
            Campos.Add("txtCoroa16", TipoCampo.Coroa);
            Campos.Add("txtCoroa15", TipoCampo.Coroa);
            Campos.Add("txtCoroa14", TipoCampo.Coroa);
            Campos.Add("txtCoroa13", TipoCampo.Coroa);
            Campos.Add("txtCoroa12", TipoCampo.Coroa);
            Campos.Add("txtCoroa11", TipoCampo.Coroa);
            Campos.Add("txtRaiz18", TipoCampo.Raiz);
            Campos.Add("txtRaiz17", TipoCampo.Raiz);
            Campos.Add("txtRaiz16", TipoCampo.Raiz);
            Campos.Add("txtRaiz15", TipoCampo.Raiz);
            Campos.Add("txtRaiz14", TipoCampo.Raiz);
            Campos.Add("txtRaiz13", TipoCampo.Raiz);
            Campos.Add("txtRaiz12", TipoCampo.Raiz);
            Campos.Add("txtRaiz11", TipoCampo.Raiz);
            Campos.Add("txtTratamento18", TipoCampo.Tratamento);
            Campos.Add("txtTratamento17", TipoCampo.Tratamento);
            Campos.Add("txtTratamento16", TipoCampo.Tratamento);
            Campos.Add("txtTratamento15", TipoCampo.Tratamento);
            Campos.Add("txtTratamento14", TipoCampo.Tratamento);
            Campos.Add("txtTratamento13", TipoCampo.Tratamento);
            Campos.Add("txtTratamento12", TipoCampo.Tratamento);
            Campos.Add("txtTratamento11", TipoCampo.Tratamento);
        }
        #endregion

        #region Metodos

        private void HabilitaBotoes(bool ativo)
        {
            btn0.Enabled = ativo;
            btn1.Enabled = ativo;
            btn2.Enabled = ativo;
            btn3.Enabled = ativo;
            btn4.Enabled = ativo;
            btn5.Enabled = ativo;
            btn6.Enabled = ativo;
            btn7.Enabled = ativo;
            btn8.Enabled = ativo;
            btn9.Enabled = ativo;
            btnA.Enabled = ativo;
            btnB.Enabled = ativo;
            btnC.Enabled = ativo;
            btnD.Enabled = ativo;
            btnE.Enabled = ativo;
            btnF.Enabled = ativo;
            btnG.Enabled = ativo;
            btnP.Enabled = ativo;
            btnT.Enabled = ativo;
        }

        private void ValidacaoCodigoRaiz()
        {
            string codigoCoroa = string.Empty;

            switch (this.txtFocus.Name)
            {
                case "txtRaiz18":
                    codigoCoroa = txtCoroa18.Text;
                    break;
                case "txtRaiz17":
                    codigoCoroa = txtCoroa17.Text;
                    break;
                case "txtRaiz16":
                    codigoCoroa = txtCoroa16.Text;
                    break;
                case "txtRaiz15":
                    codigoCoroa = txtCoroa15.Text;
                    break;
                case "txtRaiz14":
                    codigoCoroa = txtCoroa14.Text;
                    break;
                case "txtRaiz13":
                    codigoCoroa = txtCoroa13.Text;
                    break;
                case "txtRaiz12":
                    codigoCoroa = txtCoroa12.Text;
                    break;
                case "txtRaiz11":
                    codigoCoroa = txtCoroa11.Text;
                    break;
            }

            if (codigoCoroa == "4" || codigoCoroa == "5" || codigoCoroa == "8" || codigoCoroa == "E")
            {
                btn8.Enabled = true;
                btn9.Enabled = true;
            }
            else
            {
                btn0.Enabled = true;
                btn1.Enabled = true;
                btn2.Enabled = true;
                btn3.Enabled = true;
                btn7.Enabled = true;
                btn8.Enabled = true;
                btn9.Enabled = true;
            }
        }

        private void ValidacaoCodigoTratamento()
        {
            string codigoCoroa = string.Empty;
            string codigoRaiz = string.Empty;

            switch (this.txtFocus.Name)
            {
                case "txtTratamento18":
                    codigoCoroa = txtCoroa18.Text;
                    codigoRaiz = txtRaiz18.Text;
                    break;
                case "txtTratamento17":
                    codigoCoroa = txtCoroa17.Text;
                    codigoRaiz = txtRaiz17.Text;
                    break;
                case "txtTratamento16":
                    codigoCoroa = txtCoroa16.Text;
                    codigoRaiz = txtRaiz16.Text;
                    break;
                case "txtTratamento15":
                    codigoCoroa = txtCoroa15.Text;
                    codigoRaiz = txtRaiz15.Text;
                    break;
                case "txtTratamento14":
                    codigoCoroa = txtCoroa14.Text;
                    codigoRaiz = txtRaiz14.Text;
                    break;
                case "txtTratamento13":
                    codigoCoroa = txtCoroa13.Text;
                    codigoRaiz = txtRaiz13.Text;
                    break;
                case "txtTratamento12":
                    codigoCoroa = txtCoroa12.Text;
                    codigoRaiz = txtRaiz12.Text;
                    break;
                case "txtTratamento11":
                    codigoCoroa = txtCoroa11.Text;
                    codigoRaiz = txtRaiz11.Text;
                    break;
            }

            if (codigoCoroa == "1" || codigoCoroa == "2" || codigoCoroa == "B" || codigoCoroa == "C")
            {
                btn0.Enabled = true;
                btn1.Enabled = true;
                btn2.Enabled = true;
                btn5.Enabled = true;
                btn6.Enabled = true;
                btn7.Enabled = true;
                btn8.Enabled = true;
                btn9.Enabled = true;
            }
            else if (codigoCoroa == "3" || codigoCoroa == "D")
            {
                btn0.Enabled = true;
                btn9.Enabled = true;
                if (codigoRaiz == "0" || codigoRaiz == "8")
                {
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else if (codigoRaiz == "1" || codigoRaiz == "2")
                {
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                }
                else if (codigoRaiz == "3")
                {
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else if (codigoRaiz == "7")
                {
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else
                    btnP.Enabled = true;
            }
            else if (codigoCoroa == "4" || codigoCoroa == "5" || codigoCoroa == "8" || codigoCoroa == "E")
            {
                btn7.Enabled = true;
                btn8.Enabled = true;
                btn9.Enabled = true;
            }
            else if (codigoCoroa == "6" || codigoCoroa == "F")
            {
                btn0.Enabled = true;
                btn9.Enabled = true;
                if (codigoRaiz == "0")
                {
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else if (codigoRaiz == "1" || codigoRaiz == "2")
                {
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                }
                else if (codigoRaiz == "3")
                {
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else if (codigoRaiz == "7")
                {
                    btn0.Enabled = true;
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn3.Enabled = true;
                    btn4.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btn9.Enabled = true;
                    btnA.Enabled = true;
                    btnB.Enabled = true;
                    btnC.Enabled = true;
                    btnD.Enabled = true;
                    btnE.Enabled = true;
                    btnF.Enabled = true;
                    btnP.Enabled = true;
                }
            }
            else if (codigoCoroa == "7" || codigoCoroa == "G")
            {
                btn0.Enabled = true;
                btn1.Enabled = true;
                btn2.Enabled = true;
                btn3.Enabled = true;
                btn4.Enabled = true;
                btn5.Enabled = true;
                btn6.Enabled = true;
                btn7.Enabled = true;
                btn8.Enabled = true;
                btn9.Enabled = true;
                btnA.Enabled = true;
                btnB.Enabled = true;
                btnC.Enabled = true;
                btnD.Enabled = true;
                btnE.Enabled = true;
                btnF.Enabled = true;
                btnP.Enabled = true;
            }
        }

        #endregion

        #region Eventos
        private void btn_Click(object sender, EventArgs e)
        {
            base.Button_Click(sender, e);
        }

        private void txt_GotFocus(object sender, EventArgs e)
        {
            base.TextBoxGotFocus(sender, e);

            if (Campos[this.txtFocus.Name] == TipoCampo.Coroa)
            {
                this.HabilitaBotoes(true);
                this.btnP.Enabled = false;
            }
            else if (Campos[this.txtFocus.Name] == TipoCampo.Raiz)
            {
                this.HabilitaBotoes(false);
                ValidacaoCodigoRaiz();
            }
            else if (Campos[this.txtFocus.Name] == TipoCampo.Tratamento)
            {
                this.HabilitaBotoes(false);
                ValidacaoCodigoTratamento();
            }
        }

        private void btnLimpar_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Tem certeza que deseja Limpar esta Ficha?", 
                                "Atenção", 
                                MessageBoxButtons.OKCancel, 
                                MessageBoxIcon.Question, 
                                MessageBoxDefaultButton.Button2) == DialogResult.OK)
            {
                txtCoroa11.Text = "0";
                txtCoroa12.Text = "0";
                txtCoroa13.Text = "0";
                txtCoroa14.Text = "0";
                txtCoroa15.Text = "0";
                txtCoroa16.Text = "0";
                txtCoroa17.Text = "0";
                txtCoroa18.Text = "0";
                txtRaiz11.Text = "0";
                txtRaiz12.Text = "0";
                txtRaiz13.Text = "0";
                txtRaiz14.Text = "0";
                txtRaiz15.Text = "0";
                txtRaiz16.Text = "0";
                txtRaiz17.Text = "0";
                txtRaiz18.Text = "0";
                txtTratamento11.Text = "0";
                txtTratamento12.Text = "0";
                txtTratamento13.Text = "0";
                txtTratamento14.Text = "0";
                txtTratamento15.Text = "0";
                txtTratamento16.Text = "0";
                txtTratamento17.Text = "0";
                txtTratamento18.Text = "0";
            }
        }

        private void btnProximo_Click(object sender, EventArgs e)
        {
            txtCoroa18.Focus();

            //Dente 11_51
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_11_51.Coroa = txtCoroa11.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_11_51.Raiz = txtRaiz11.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_11_51.Tratamento = txtTratamento11.Text;
            //Dente 12_52
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_12_52.Coroa = txtCoroa12.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_12_52.Raiz = txtRaiz12.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_12_52.Tratamento = txtTratamento12.Text;
            //Dente 13_53
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_13_53.Coroa = txtCoroa13.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_13_53.Raiz = txtRaiz13.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_13_53.Tratamento = txtTratamento13.Text;
            //Dente 14_54
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_14_54.Coroa = txtCoroa14.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_14_54.Raiz = txtRaiz14.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_14_54.Tratamento = txtTratamento14.Text;
            //Dente 15_55
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_15_55.Coroa = txtCoroa15.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_15_55.Raiz = txtRaiz15.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_15_55.Tratamento = txtTratamento15.Text;
            //Dente 16
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_16.Coroa = txtCoroa16.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_16.Raiz = txtRaiz16.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_16.Tratamento = txtTratamento16.Text;
            //Dente 17
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_17.Coroa = txtCoroa17.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_17.Raiz = txtRaiz17.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_17.Tratamento = txtTratamento17.Text;
            //Dente 18
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_18.Coroa = txtCoroa18.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_18.Raiz = txtRaiz18.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_18.Tratamento = txtTratamento18.Text;

            ControleFormularios.MostraProximaFicha();
        }

        private void btnVoltar_Click(object sender, EventArgs e)
        {
            ControleFormularios.MostraFichaAnterior();
        }

        public override void MostraFormulario()
        {
            //Dente 11_51
            txtCoroa11.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_11_51.Coroa;
            txtRaiz11.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_11_51.Raiz;
            txtTratamento11.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_11_51.Tratamento;
            //Dente 12_52
            txtCoroa12.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_12_52.Coroa;
            txtRaiz12.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_12_52.Raiz;
            txtTratamento12.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_12_52.Tratamento;
            //Dente 13_53
            txtCoroa13.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_13_53.Coroa;
            txtRaiz13.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_13_53.Raiz;
            txtTratamento13.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_13_53.Tratamento;
            //Dente 14_54
            txtCoroa14.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_14_54.Coroa;
            txtRaiz14.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_14_54.Raiz;
            txtTratamento14.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_14_54.Tratamento;
            //Dente 15_55
            txtCoroa15.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_15_55.Coroa;
            txtRaiz15.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_15_55.Raiz;
            txtTratamento15.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_15_55.Tratamento;
            //Dente 16
            txtCoroa16.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_16.Coroa;
            txtRaiz16.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_16.Raiz;
            txtTratamento16.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_16.Tratamento;
            //Dente 17
            txtCoroa17.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_17.Coroa;
            txtRaiz17.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_17.Raiz;
            txtTratamento17.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_17.Tratamento;
            //Dente 18
            txtCoroa18.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_18.Coroa;
            txtRaiz18.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_18.Raiz;
            txtTratamento18.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_18.Tratamento;

            base.MostraFormulario();
        }
        #endregion 
    }
}